ದೋಷ ಸಹಿಷ್ಣುತೆಗಾಗಿ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ಅನ್ವೇಷಿಸಿ, ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಅದರ ಅನುಷ್ಠಾನ, ಪ್ರಯೋಜನಗಳು ಮತ್ತು ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳನ್ನು ತಿಳಿಯಿರಿ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್: ಆಧುನಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಒಂದು ದೃಢವಾದ ದೋಷ ಸಹಿಷ್ಣುತೆಯ ಮಾದರಿ
ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಯ ಕ್ಷೇತ್ರದಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ಮೈಕ್ರೋಸರ್ವಿಸಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳು ಮತ್ತು ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಅತ್ಯಂತ ಮುಖ್ಯವಾಗಿದೆ. ಕಾಂಪೊನೆಂಟ್ಗಳು ವಿಫಲವಾದಾಗ, ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಯುವುದು ಮತ್ತು ಸ್ಥಿರವಾದ, ಸ್ಪಂದಿಸುವ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಅಂತಹ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ದೋಷ ಸಹಿಷ್ಣುತೆ ಮತ್ತು ಗ್ರೇಸ್ಫುಲ್ ಡಿಗ್ರೇಡೇಶನ್ ಸಾಧಿಸಲು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯು ಒಂದು ಪ್ರಬಲ ಪರಿಹಾರವಾಗಿ ಹೊರಹೊಮ್ಮುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿ ಎಂದರೇನು?
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯು ವಿದ್ಯುತ್ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ನಿಂದ ಪ್ರೇರಿತವಾಗಿದೆ, ಇದು ಅಧಿಕ ಪ್ರವಾಹದಿಂದ ಉಂಟಾಗುವ ಹಾನಿಯಿಂದ ಸರ್ಕ್ಯೂಟ್ಗಳನ್ನು ರಕ್ಷಿಸುತ್ತದೆ. ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ, ಇದು ವಿಫಲವಾಗಬಹುದಾದ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಪ್ರಾಕ್ಸಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ವಿಫಲವಾಗುವ ಸಾಧ್ಯತೆಯಿರುವ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪದೇ ಪದೇ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ. ಈ ಪೂರ್ವಭಾವಿ ವಿಧಾನವು ಸಂಪನ್ಮೂಲಗಳ ವ್ಯರ್ಥವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ, ಲೇಟೆನ್ಸಿಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ ಸಿಸ್ಟಮ್ ಸ್ಥಿರತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಇದರ ಮೂಲ ಕಲ್ಪನೆಯೆಂದರೆ, ಒಂದು ಸೇವೆಯು ನಿರಂತರವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಲು ವಿಫಲವಾದಾಗ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ "ತೆರೆಯುತ್ತದೆ", ಆ ಸೇವೆಗೆ ಹೆಚ್ಚಿನ ವಿನಂತಿಗಳನ್ನು ತಡೆಯುತ್ತದೆ. ನಿರ್ದಿಷ್ಟ ಅವಧಿಯ ನಂತರ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ "ಅರೆ-ತೆರೆದ" ಸ್ಥಿತಿಯನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ, ಸೀಮಿತ ಸಂಖ್ಯೆಯ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳು ಹಾದುಹೋಗಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ವಿನಂತಿಗಳು ಯಶಸ್ವಿಯಾದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ "ಮುಚ್ಚುತ್ತದೆ", ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪುನರಾರಂಭಿಸುತ್ತದೆ. ಅವು ವಿಫಲವಾದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆದಿರುತ್ತದೆ ಮತ್ತು ಚಕ್ರವು ಪುನರಾವರ್ತನೆಯಾಗುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ನ ಸ್ಥಿತಿಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮೂರು ವಿಭಿನ್ನ ಸ್ಥಿತಿಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:
- ಮುಚ್ಚಿದ (Closed): ಇದು ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಥಿತಿ. ವಿನಂತಿಗಳನ್ನು ನೇರವಾಗಿ ಸೇವೆಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಈ ವಿನಂತಿಗಳ ಯಶಸ್ಸು ಮತ್ತು ವೈಫಲ್ಯದ ದರಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ. ವೈಫಲ್ಯ ದರವು ಪೂರ್ವನಿರ್ಧರಿತ ಮಿತಿಯನ್ನು ಮೀರಿದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆದ (Open) ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತದೆ.
- ತೆರೆದ (Open): ಈ ಸ್ಥಿತಿಯಲ್ಲಿ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಎಲ್ಲಾ ವಿನಂತಿಗಳನ್ನು ಶಾರ್ಟ್-ಸರ್ಕ್ಯೂಟ್ ಮಾಡುತ್ತದೆ, ತಕ್ಷಣವೇ ದೋಷ ಅಥವಾ ಫಾಲ್ಬ್ಯಾಕ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಇದು ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗೆ ಮರುಪ್ರಯತ್ನಗಳಿಂದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮುಳುಗಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಸೇವೆಗೆ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಮಯವನ್ನು ನೀಡುತ್ತದೆ.
- ಅರೆ-ತೆರೆದ (Half-Open): ತೆರೆದ ಸ್ಥಿತಿಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸಮಯಾವಧಿಯ ನಂತರ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅರೆ-ತೆರೆದ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತದೆ. ಈ ಸ್ಥಿತಿಯಲ್ಲಿ, ಇದು ಸೀಮಿತ ಸಂಖ್ಯೆಯ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳನ್ನು ಸೇವೆಗೆ ಹಾದುಹೋಗಲು ಅನುಮತಿಸುತ್ತದೆ. ಈ ವಿನಂತಿಗಳು ಯಶಸ್ವಿಯಾದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮತ್ತೆ ಮುಚ್ಚಿದ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತದೆ. ಯಾವುದೇ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳು ವಿಫಲವಾದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆದ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರಿಂದ ಹಲವಾರು ಪ್ರಮುಖ ಪ್ರಯೋಜನಗಳು ಲಭ್ಯವಾಗುತ್ತವೆ:
- ಸುಧಾರಿತ ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ: ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗಳಿಗೆ ವಿನಂತಿಗಳನ್ನು ತಡೆಯುವ ಮೂಲಕ ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯತೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
- ವರ್ಧಿತ ಸ್ಥಿರತೆ: ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗಳಿಗೆ ಮರುಪ್ರಯತ್ನಗಳಿಂದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮುಳುಗದಂತೆ ರಕ್ಷಿಸುತ್ತದೆ, ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸಂರಕ್ಷಿಸುತ್ತದೆ ಮತ್ತು ಒಟ್ಟಾರೆ ಸ್ಥಿರತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಕಡಿಮೆ ಲೇಟೆನ್ಸಿ: ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗಳು ಪ್ರತಿಕ್ರಿಯಿಸಲು ಕಾಯುವುದರಿಂದ ಉಂಟಾಗುವ ಅನಗತ್ಯ ವಿಳಂಬವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ, ಬಳಕೆದಾರರಿಗೆ ವೇಗವಾದ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ನೀಡುತ್ತದೆ.
- ಗ್ರೇಸ್ಫುಲ್ ಡಿಗ್ರೇಡೇಶನ್: ಸೇವೆಗಳು ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹಂತಹಂತವಾಗಿ ಕಡಿಮೆ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಕೇವಲ ವಿಫಲಗೊಳ್ಳುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸ್ವೀಕಾರಾರ್ಹ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಒದಗಿಸುತ್ತದೆ.
- ಸ್ವಯಂಚಾಲಿತ ಚೇತರಿಕೆ: ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗಳು ಮತ್ತೆ ಲಭ್ಯವಾದಾಗ ಸ್ವಯಂಚಾಲಿತ ಚೇತರಿಕೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಡೌನ್ಟೈಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- ದೋಷ ಪ್ರತ್ಯೇಕತೆ: ಸಿಸ್ಟಮ್ನಲ್ಲಿನ ವೈಫಲ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ, ಅವು ಇತರ ಕಾಂಪೊನೆಂಟ್ಗಳಿಗೆ ಹರಡುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
ಅನುಷ್ಠಾನದ ಪರಿಗಣನೆಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಹಲವಾರು ಅಂಶಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಪರಿಗಣಿಸಬೇಕಾಗುತ್ತದೆ:
- ವೈಫಲ್ಯದ ಮಿತಿ (Failure Threshold): ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅನ್ನು ಯಾವಾಗ ತೆರೆಯಬೇಕು ಎಂದು ನಿರ್ಧರಿಸುವ ಮಿತಿ. ನಿರ್ದಿಷ್ಟ ಸೇವೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಅವಶ್ಯಕತೆಗಳ ಆಧಾರದ ಮೇಲೆ ಇದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಹೊಂದಿಸಬೇಕು. ಕಡಿಮೆ ಮಿತಿಯು ಅಕಾಲಿಕ ಟ್ರಿಪ್ಪಿಂಗ್ಗೆ ಕಾರಣವಾಗಬಹುದು, ಆದರೆ ಹೆಚ್ಚಿನ ಮಿತಿಯು ಸಾಕಷ್ಟು ರಕ್ಷಣೆ ನೀಡದಿರಬಹುದು.
- ಸಮಯಾವಧಿ (Timeout Duration): ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅರೆ-ತೆರೆದ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುವ ಮೊದಲು ತೆರೆದ ಸ್ಥಿತಿಯಲ್ಲಿ ಉಳಿಯುವ ಸಮಯ. ಈ ಅವಧಿಯು ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗೆ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಾಕಷ್ಟು ದೀರ್ಘವಾಗಿರಬೇಕು ಆದರೆ ಡೌನ್ಟೈಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಸಾಕಷ್ಟು ಚಿಕ್ಕದಾಗಿರಬೇಕು.
- ಅರೆ-ತೆರೆದ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳು (Half-Open Test Requests): ಅರೆ-ತೆರೆದ ಸ್ಥಿತಿಯಲ್ಲಿ ಹಾದುಹೋಗಲು ಅನುಮತಿಸಲಾದ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳ ಸಂಖ್ಯೆ. ಈ ಸಂಖ್ಯೆಯು ಚೇತರಿಸಿಕೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗೆ ಅತಿಯಾದ ಹೊರೆಯಾಗುವ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಸಾಕಷ್ಟು ಚಿಕ್ಕದಾಗಿರಬೇಕು ಆದರೆ ಅದರ ಆರೋಗ್ಯದ ವಿಶ್ವಾಸಾರ್ಹ ಸೂಚನೆಯನ್ನು ಒದಗಿಸಲು ಸಾಕಷ್ಟು ದೊಡ್ಡದಾಗಿರಬೇಕು.
- ಫಾಲ್ಬ್ಯಾಕ್ ವ್ಯವಸ್ಥೆ (Fallback Mechanism): ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆದಿದ್ದಾಗ ಫಾಲ್ಬ್ಯಾಕ್ ಪ್ರತಿಕ್ರಿಯೆ ಅಥವಾ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುವ ವ್ಯವಸ್ಥೆ. ಇದು ಕ್ಯಾಶ್ ಮಾಡಿದ ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸುವುದು, ಬಳಕೆದಾರ-ಸ್ನೇಹಿ ದೋಷ ಸಂದೇಶವನ್ನು ಪ್ರದರ್ಶಿಸುವುದು, ಅಥವಾ ಬಳಕೆದಾರರನ್ನು ಪರ್ಯಾಯ ಸೇವೆಗೆ ಮರುನಿರ್ದೇಶಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರಬಹುದು.
- ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಲಾಗಿಂಗ್ (Monitoring and Logging): ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ನ ಸ್ಥಿತಿ, ವೈಫಲ್ಯಗಳ ಸಂಖ್ಯೆ, ಮತ್ತು ವಿನಂತಿಗಳ ಯಶಸ್ಸಿನ ದರಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಸಮಗ್ರ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಲಾಗಿಂಗ್. ಸಿಸ್ಟಮ್ನ ನಡವಳಿಕೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಈ ಮಾಹಿತಿಯು ನಿರ್ಣಾಯಕವಾಗಿದೆ.
- ಸಂರಚನೆ (Configuration): ಕೋಡ್ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿಲ್ಲದೆ ಕ್ರಿಯಾತ್ಮಕ ಹೊಂದಾಣಿಕೆಗೆ ಅನುವು ಮಾಡಿಕೊಡಲು ಸಂರಚನಾ ನಿಯತಾಂಕಗಳನ್ನು (ವೈಫಲ್ಯದ ಮಿತಿ, ಸಮಯಾವಧಿ, ಅರೆ-ತೆರೆದ ಪರೀಕ್ಷಾ ವಿನಂತಿಗಳು) ಬಾಹ್ಯೀಕರಿಸಿ.
ಉದಾಹರಣೆ ಅನುಷ್ಠಾನಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಮತ್ತು ಫ್ರೇಮ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಕೆಲವು ಉದಾಹರಣೆಗಳು ಇಲ್ಲಿವೆ:
Resilience4j ನೊಂದಿಗೆ ಜಾವಾ
Resilience4j ಎಂಬುದು ಜನಪ್ರಿಯ ಜಾವಾ ಲೈಬ್ರರಿಯಾಗಿದ್ದು, ಇದು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್, ರಿಟ್ರೈ, ರೇಟ್ ಲಿಮಿಟರ್, ಮತ್ತು ಬಲ್ಕ್ಹೆಡ್ ಸೇರಿದಂತೆ ದೋಷ ಸಹಿಷ್ಣುತೆಯ ಸಾಧನಗಳ ಸಮಗ್ರ ಸೂಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇಲ್ಲಿದೆ ಒಂದು ಮೂಲಭೂತ ಉದಾಹರಣೆ:
CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom()
.failureRateThreshold(50)
.waitDurationInOpenState(Duration.ofMillis(1000))
.permittedNumberOfCallsInHalfOpenState(2)
.slidingWindowSize(10)
.build();
CircuitBreaker circuitBreaker = CircuitBreaker.of("myService", circuitBreakerConfig);
Supplier<String> decoratedSupplier = CircuitBreaker
.decorateSupplier(circuitBreaker, () -> myRemoteService.getData());
try {
String result = decoratedSupplier.get();
// ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿ
} catch (RequestNotPermitted e) {
// ತೆರೆದ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ
System.err.println("Circuit is open: " + e.getMessage());
}
Pybreaker ನೊಂದಿಗೆ ಪೈಥಾನ್
Pybreaker ಎಂಬುದು ಪೈಥಾನ್ ಲೈಬ್ರರಿಯಾಗಿದ್ದು, ಇದು ಸರಳ ಮತ್ತು ಬಳಸಲು ಸುಲಭವಾದ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅನುಷ್ಠಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ.
import pybreaker
breaker = pybreaker.CircuitBreaker(fail_max=3, reset_timeout=10)
@breaker
def unreliable_function():
# ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಫಂಕ್ಷನ್ ಕರೆಯನ್ನು ಇಲ್ಲಿ ಮಾಡಿ
pass
try:
unreliable_function()
except pybreaker.CircuitBreakerError:
print("Circuit Breaker is open!")
Polly ನೊಂದಿಗೆ .NET
Polly ಎಂಬುದು .NET ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ ಮತ್ತು ಅಸ್ಥಿರ-ದೋಷ-ನಿರ್ವಹಣಾ ಲೈಬ್ರರಿಯಾಗಿದ್ದು, ಇದು ಡೆವಲಪರ್ಗಳಿಗೆ ರಿಟ್ರೈ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್, ಟೈಮ್ಔಟ್, ಮತ್ತು ಬಲ್ಕ್ಹೆಡ್ನಂತಹ ನೀತಿಗಳನ್ನು ಸರಳ ಮತ್ತು ಸಂಯೋಜಿಸಬಹುದಾದ ರೀತಿಯಲ್ಲಿ ವ್ಯಕ್ತಪಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
var circuitBreakerPolicy = Policy
.Handle<Exception>()
.CircuitBreakerAsync(
exceptionsAllowedBeforeBreaking: 3,
durationOfBreak: TimeSpan.FromSeconds(10),
onBreak: (exception, timespan) =>
{
Console.WriteLine("Circuit Breaker opened: " + exception.Message);
},
onReset: () =>
{
Console.WriteLine("Circuit Breaker reset.");
},
onHalfOpen: () =>
{
Console.WriteLine("Circuit Breaker half-opened.");
});
try
{
await circuitBreakerPolicy.ExecuteAsync(async () =>
{
// ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಕಾರ್ಯಾಚರಣೆ ಇಲ್ಲಿ
await MyRemoteService.GetDataAsync();
});
}
catch (Exception ex)
{
Console.WriteLine("Handled exception: " + ex.Message);
}
ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿಯನ್ನು ವಿವಿಧ ಕೈಗಾರಿಕೆಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ:
- ಇ-ಕಾಮರ್ಸ್: ಪೇಮೆಂಟ್ ಗೇಟ್ವೇ ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಯುವುದು, ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಮತ್ತು ಚೆಕ್ಔಟ್ ಪ್ರಕ್ರಿಯೆಯು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಉಳಿಯುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ: ಜಾಗತಿಕ ಇ-ಕಾಮರ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಪಾವತಿ ಪೂರೈಕೆದಾರರು ಒಂದು ಪ್ರದೇಶದಲ್ಲಿ (ಉದಾ., ಆಗ್ನೇಯ ಏಷ್ಯಾ) ಡೌನ್ಟೈಮ್ ಅನುಭವಿಸಿದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಆ ಪ್ರದೇಶದಲ್ಲಿನ ವಹಿವಾಟುಗಳನ್ನು ಪರ್ಯಾಯ ಪೂರೈಕೆದಾರರಿಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ ಅಥವಾ ಸಿಸ್ಟಮ್ ಬಳಕೆದಾರರಿಗೆ ಪರ್ಯಾಯ ಪಾವತಿ ವಿಧಾನಗಳನ್ನು ನೀಡಬಹುದು.
- ಹಣಕಾಸು ಸೇವೆಗಳು: ಟ್ರೇಡಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿನ ವೈಫಲ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದು, ತಪ್ಪಾದ ಅಥವಾ ಅಪೂರ್ಣ ವಹಿವಾಟುಗಳನ್ನು ತಡೆಯುವುದು. ಉದಾಹರಣೆಗೆ: ಗರಿಷ್ಠ ವ್ಯಾಪಾರದ ಸಮಯದಲ್ಲಿ, ಬ್ರೋಕರೇಜ್ ಸಂಸ್ಥೆಯ ಆರ್ಡರ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸೇವೆಯು ಮಧ್ಯಂತರ ವೈಫಲ್ಯಗಳನ್ನು ಅನುಭವಿಸಬಹುದು. ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಆ ಸೇವೆಯ ಮೂಲಕ ಆರ್ಡರ್ಗಳನ್ನು ಇರಿಸಲು ಪುನರಾವರ್ತಿತ ಪ್ರಯತ್ನಗಳನ್ನು ತಡೆಯಬಹುದು, ಸಿಸ್ಟಮ್ ಅನ್ನು ಓವರ್ಲೋಡ್ ಮತ್ತು ಸಂಭಾವ್ಯ ಆರ್ಥಿಕ ನಷ್ಟಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ.
- ಕ್ಲೌಡ್ ಕಂಪ್ಯೂಟಿಂಗ್: ಕ್ಲೌಡ್ ಸೇವೆಗಳ ತಾತ್ಕಾಲಿಕ ಸ್ಥಗಿತಗಳನ್ನು ನಿಭಾಯಿಸುವುದು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಲಭ್ಯವಿರುವುದನ್ನು ಮತ್ತು ಸ್ಪಂದಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು. ಉದಾಹರಣೆಗೆ: ಜಾಗತಿಕ ಮಾರ್ಕೆಟಿಂಗ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಬಳಸುವ ಕ್ಲೌಡ್-ಆಧಾರಿತ ಚಿತ್ರ ಸಂಸ್ಕರಣಾ ಸೇವೆಯು ನಿರ್ದಿಷ್ಟ ಡೇಟಾ ಸೆಂಟರ್ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ವಿನಂತಿಗಳನ್ನು ಬೇರೆ ಡೇಟಾ ಸೆಂಟರ್ಗೆ ರವಾನಿಸುತ್ತದೆ ಅಥವಾ ಫಾಲ್ಬ್ಯಾಕ್ ಸೇವೆಯನ್ನು ಬಳಸುತ್ತದೆ, ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಬಳಕೆದಾರರಿಗೆ ಅಡಚಣೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- IoT: IoT ಸಾಧನಗಳೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಮಸ್ಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು, ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸಾಧನಗಳಿಂದ ಸಿಸ್ಟಮ್ ಅನ್ನು ಮುಳುಗದಂತೆ ತಡೆಯುವುದು. ಉದಾಹರಣೆಗೆ: ವಿವಿಧ ಭೌಗೋಳಿಕ ಸ್ಥಳಗಳಲ್ಲಿ ಹಲವಾರು ಸಂಪರ್ಕಿತ ಸಾಧನಗಳನ್ನು ಹೊಂದಿರುವ ಸ್ಮಾರ್ಟ್ ಹೋಮ್ ಸಿಸ್ಟಮ್ನಲ್ಲಿ, ನಿರ್ದಿಷ್ಟ ಪ್ರದೇಶದಲ್ಲಿ (ಉದಾ., ಯುರೋಪ್) ಒಂದು ನಿರ್ದಿಷ್ಟ ರೀತಿಯ ಸೆನ್ಸರ್ ದೋಷಪೂರಿತ ಡೇಟಾವನ್ನು ವರದಿ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದರೆ ಅಥವಾ ಪ್ರತಿಕ್ರಿಯಿಸದಿದ್ದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಆ ಸೆನ್ಸರ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಬಹುದು ಮತ್ತು ಒಟ್ಟಾರೆ ಸಿಸ್ಟಮ್ನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದನ್ನು ತಡೆಯಬಹುದು.
- ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ: ಥರ್ಡ್-ಪಾರ್ಟಿ API ಇಂಟಿಗ್ರೇಷನ್ಗಳಲ್ಲಿನ ತಾತ್ಕಾಲಿಕ ವೈಫಲ್ಯಗಳನ್ನು ನಿಭಾಯಿಸುವುದು, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಉಳಿಯುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು. ಉದಾಹರಣೆಗೆ: ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಬಾಹ್ಯ ವಿಷಯವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಥರ್ಡ್-ಪಾರ್ಟಿ API ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ ಮತ್ತು ಆ API ಡೌನ್ಟೈಮ್ ಅನುಭವಿಸಿದರೆ, ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ API ಗೆ ಪುನರಾವರ್ತಿತ ವಿನಂತಿಗಳನ್ನು ತಡೆಯಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಕ್ಯಾಶ್ ಮಾಡಿದ ಡೇಟಾ ಅಥವಾ ಡೀಫಾಲ್ಟ್ ಸಂದೇಶವನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು, ವೈಫಲ್ಯದ ಪರಿಣಾಮವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ vs. ರಿಟ್ರೈ ಮಾದರಿ
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮತ್ತು ರಿಟ್ರೈ ಮಾದರಿಗಳೆರಡೂ ದೋಷ ಸಹಿಷ್ಣುತೆಗಾಗಿ ಬಳಸಲಾಗಿದ್ದರೂ, ಅವು ವಿಭಿನ್ನ ಉದ್ದೇಶಗಳನ್ನು ಪೂರೈಸುತ್ತವೆ.
- ರಿಟ್ರೈ ಮಾದರಿ (Retry Pattern): ವಿಫಲವಾದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಯತ್ನಿಸುತ್ತದೆ, ವೈಫಲ್ಯವು ಅಸ್ಥಿರವಾಗಿದೆ ಮತ್ತು ನಂತರದ ಪ್ರಯತ್ನದಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಯು ಯಶಸ್ವಿಯಾಗಬಹುದು ಎಂದು ಭಾವಿಸುತ್ತದೆ. ಮಧ್ಯಂತರ ನೆಟ್ವರ್ಕ್ ದೋಷಗಳು ಅಥವಾ ತಾತ್ಕಾಲಿಕ ಸಂಪನ್ಮೂಲಗಳ ಬಳಕೆಗೆ ಉಪಯುಕ್ತ. ಆಧಾರವಾಗಿರುವ ಸೇವೆಯು ನಿಜವಾಗಿಯೂ ಸ್ಥಗಿತಗೊಂಡಿದ್ದರೆ ಸಮಸ್ಯೆಗಳನ್ನು ಉಲ್ಬಣಗೊಳಿಸಬಹುದು.
- ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಾದರಿ (Circuit Breaker Pattern): ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪುನರಾವರ್ತಿತ ಪ್ರಯತ್ನಗಳನ್ನು ತಡೆಯುತ್ತದೆ, ವೈಫಲ್ಯವು ನಿರಂತರವಾಗಿದೆ ಎಂದು ಭಾವಿಸುತ್ತದೆ. ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಯಲು ಮತ್ತು ವಿಫಲಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗೆ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಮಯವನ್ನು ನೀಡಲು ಉಪಯುಕ್ತ.
ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಈ ಮಾದರಿಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ನೊಳಗೆ ರಿಟ್ರೈ ಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಸೇವೆಯು ನಿರಂತರವಾಗಿ ವಿಫಲಗೊಳ್ಳುತ್ತಿದ್ದರೆ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅತಿಯಾದ ಮರುಪ್ರಯತ್ನಗಳನ್ನು ತಡೆಯುತ್ತದೆ, ಆದರೆ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಪ್ರಚೋದಿಸುವ ಮೊದಲು ರಿಟ್ರೈ ಮಾದರಿಯು ಅಸ್ಥಿರ ದೋಷಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತದೆ.
ತಪ್ಪಿಸಬೇಕಾದ ಆಂಟಿ-ಪ್ಯಾಟರ್ನ್ಗಳು
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದ್ದರೂ, ಸಂಭಾವ್ಯ ಆಂಟಿ-ಪ್ಯಾಟರ್ನ್ಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರುವುದು ಮುಖ್ಯವಾಗಿದೆ:
- ತಪ್ಪಾದ ಸಂರಚನೆ: ವೈಫಲ್ಯದ ಮಿತಿ ಅಥವಾ ಸಮಯಾವಧಿಯನ್ನು ತುಂಬಾ ಹೆಚ್ಚು ಅಥವಾ ತುಂಬಾ ಕಡಿಮೆಯಾಗಿ ಹೊಂದಿಸುವುದರಿಂದ ಅಕಾಲಿಕ ಟ್ರಿಪ್ಪಿಂಗ್ ಅಥವಾ ಅಸಮರ್ಪಕ ರಕ್ಷಣೆಗೆ ಕಾರಣವಾಗಬಹುದು.
- ಮೇಲ್ವಿಚಾರಣೆಯ ಕೊರತೆ: ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ನ ಸ್ಥಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ವಿಫಲವಾದರೆ ಆಧಾರವಾಗಿರುವ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
- ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಕಡೆಗಣಿಸುವುದು: ಫಾಲ್ಬ್ಯಾಕ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಒದಗಿಸದಿರುವುದು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತೆರೆದಿದ್ದಾಗ ಕಳಪೆ ಬಳಕೆದಾರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು.
- ಅತಿಯಾದ ಅವಲಂಬನೆ: ನಿಮ್ಮ ಸೇವೆಗಳಲ್ಲಿನ ಮೂಲಭೂತ ವಿಶ್ವಾಸಾರ್ಹತೆಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳನ್ನು ಬದಲಿಯಾಗಿ ಬಳಸುವುದು. ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು ಒಂದು ರಕ್ಷಣೆ, ಪರಿಹಾರವಲ್ಲ.
- ಡೌನ್ಸ್ಟ್ರೀಮ್ ಅವಲಂಬನೆಗಳನ್ನು ಪರಿಗಣಿಸದಿರುವುದು: ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ತಕ್ಷಣದ ಕಾಲರ್ ಅನ್ನು ರಕ್ಷಿಸುತ್ತದೆ. ವೈಫಲ್ಯಗಳ ಪ್ರಸರಣವನ್ನು ತಡೆಯಲು ಡೌನ್ಸ್ಟ್ರೀಮ್ ಸೇವೆಗಳು ಸಹ ಸೂಕ್ತವಾದ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳನ್ನು ಹೊಂದಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಸುಧಾರಿತ ಪರಿಕಲ್ಪನೆಗಳು
- ಹೊಂದಾಣಿಕೆಯ ಮಿತಿಗಳು (Adaptive Thresholds): ಐತಿಹಾಸಿಕ ಕಾರ್ಯಕ್ಷಮತೆ ಡೇಟಾವನ್ನು ಆಧರಿಸಿ ವೈಫಲ್ಯದ ಮಿತಿಯನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಹೊಂದಿಸುವುದು.
- ರೋಲಿಂಗ್ ವಿಂಡೋಸ್ (Rolling Windows): ವೈಫಲ್ಯ ದರವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ರೋಲಿಂಗ್ ವಿಂಡೋವನ್ನು ಬಳಸುವುದು, ಇತ್ತೀಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಹೆಚ್ಚು ನಿಖರವಾದ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ.
- ಸಂದರ್ಭೋಚಿತ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು (Contextual Circuit Breakers): ವಿವಿಧ ರೀತಿಯ ವಿನಂತಿಗಳು ಅಥವಾ ಬಳಕೆದಾರರಿಗೆ ವಿಭಿನ್ನ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳನ್ನು ರಚಿಸುವುದು, ಹೆಚ್ಚು ವಿವರವಾದ ನಿಯಂತ್ರಣಕ್ಕೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- ವಿತರಣಾ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು (Distributed Circuit Breakers): ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ಬಹು ನೋಡ್ಗಳಾದ್ಯಂತ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು, ವೈಫಲ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಲಾಗಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು.